Gögn

Code
d <- pxweb_get(
    url ="https://px.hagstofa.is:443/pxis/api/v1/is/Samfelag/skolamal/1_leikskolastig/0_lsNemendur/SKO01000.px", 
    query = list(
        "Leikskóli" = c("*"),
        "Ár" = c("*"),
        "Kyn/aldur"  = c("First year", "1 years", "2 years", "3 years", "4 years", "5 years")
    ),
    verbose = FALSE
) |> 
    as.data.frame() |> 
    as_tibble() |> 
    janitor::clean_names() |> 
    rename(n = born_og_leikskolar_i_desember_1998_2020, aldur = kyn_aldur) |> 
    filter(leikskoli != "Alls") |> 
    separate(leikskoli, into = c("stadur", "leikskoli"), sep = " - ") |> 
    mutate(stadur = case_when(str_detect(stadur, "Reykjavík") ~ "Reykjavík",
                              TRUE ~ stadur)) |> 
    filter(stadur %in% c("Reykjavík", "Kópavogur", "Hafnarfjörður",
                         "Garðabær", "Mosfellsbær", "Seltjarnarnes",
                         "Fjarðabyggð", "Akureyri", "Sveitarfélagið Álftanes")) |> 
    mutate(ar = parse_number(ar),
           aldur = as_factor(aldur) |> fct_relevel("Á fyrsta ári"),
           stadur = fct_collapse(stadur,
                                 "Reykjavíkurborg" = "Reykjavík",
                                 "Kópavogsbær" = "Kópavogur",
                                 "Hafnarfjarðarkaupstaður" = "Hafnarfjörður",
                                 "Seltjarnarnesbær" = "Seltjarnarnes",
                                 "Akureyrarbær" = "Akureyri",
                                 "Garðabær" = c("Sveitarfélagið Álftanes", "Garðabær"),
                                 "Akureyri" = "Akureyri",
                                 "Mosfellsbær" = "Mosfellsbær")) |> 
    count(stadur, ar, aldur, wt = n)
Warning in pxweb_as_data_frame.pxweb_data(x, row.names = row.names, optional =
optional, : NAs introduced by coercion
Code
mannfjoldi <- pxweb_get(
    url ="https://px.hagstofa.is:443/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02005.px", 
    query = list(
        "Sveitarfélag" = c("*"),
        "Aldur" = as.character(0:5),
        "Ár" = c("*"),
        "Kyn" = c("0")
    ),
    verbose = FALSE
) |> 
    as.data.frame() |> 
    as_tibble() |> 
    janitor::clean_names() |> 
    rename(mannfjoldi = mannfjoldi_eftir_sveitarfelagi_kyni_og_aldri_1_januar_1998_2022) |> 
    mutate(ar = parse_number(ar)) |> 
    filter(sveitarfelag != "Alls") |> 
    select(sveitarfelag, aldur, ar, mannfjoldi) |> 
    mutate(sveitarfelag = fct_recode(sveitarfelag,
                                     "Akureyrarkaupstaður" = "Akureyrarbær"))

Hlutfall barna á leikskólaaldri

Eftir sveitarfélagi

Allir aldurshópar

Code
pred_d <- mannfjoldi |> 
    rename(stadur = sveitarfelag) |> 
    mutate(aldur = str_replace(aldur, "Á 1. ári", "Á fyrsta ári") |> str_trim() |> as_factor(),
           ar = ar - 1) |>  
    inner_join(d, 
               by = c("stadur", "ar", "aldur")) |> 
    group_by(stadur) |> 
    group_nest() |> 
    mutate(model = map(data, ~ gam(n ~ s(ar, bs = "cr", by = aldur) + aldur, offset = log(mannfjoldi), family = nb(), data = .x)),
           preds = map(model, augment, type.predict = "response"))

plot_dat <- pred_d |> 
    unnest(preds) |> 
    filter(aldur != "Á fyrsta ári", ar >= 2000, stadur != "Fjarðabyggð") |> 
    mutate(hlutf = n / exp(`(offset)`))


p <- plot_dat |> 
    ggplot(aes(ar, .fitted)) +
    geom_line(data = plot_dat |> rename(std = stadur), 
              aes(group = std), size = 0.5, alpha = 0.3, col = "grey50") +
    geom_line(aes(col = stadur), size = 1) +
    geom_point(aes(col = stadur, y = hlutf), size = 1) +
    geom_hline(yintercept = 1, lty = 2) +
    scale_x_continuous(breaks = c(2005, 2010, 2015, 2020), limits = c(NA, 2020.5)) +
    scale_y_continuous(labels = label_percent(),
                       breaks = c(0, 0.25, 0.5, 0.75, 1),
                       limits = c(NA, NA)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    facet_grid(aldur ~ stadur) +
    coord_cartesian(expand = FALSE) +
    theme_half_open() +
    theme(legend.position = "none") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfall barna með leikskólapláss eftir aldri",
         subtitle = "Reiknað sem fjöldi barna í leikskóla deilt með fjölda barna í viðeigandi árgangi",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/leikskolar")

p

Code
ggsave(plot = p, filename = "hlutfall_baer_aldur.png",
       width = 8, height = 0.6 * 8,  scale = 2, bg = "white")

12 - 23 mánaða (1 árs)

Code
plot_dat <- pred_d |> 
    select(-data, -model) |> 
    unnest(preds) |> 
    filter(aldur == "1 árs", ar >= 2000, stadur != "Fjarðabyggð") |> 
    mutate(mannfjoldi = exp(`(offset)`),
           hlutf = n / mannfjoldi) |> 
    select(stadur, ar, aldur, n, mannfjoldi, .fitted, hlutf)


p <- plot_dat |> 
    ggplot(aes(ar, .fitted)) +
    geom_line(data = plot_dat |> rename(std = stadur), 
              aes(group = std), size = 0.5, alpha = 0.3, col = "grey50") +
    geom_line(aes(col = stadur), size = 1) +
    geom_point(aes(col = stadur, y = hlutf), size = 1) +
    geom_hline(yintercept = 1, lty = 2) +
    scale_x_continuous(breaks = c(2005, 2010, 2015, 2020), limits = c(NA, 2020.5)) +
    scale_y_continuous(labels = label_percent(),
                       breaks = c(0, 0.25, 0.5, 0.75, 1),
                       limits = c(NA, NA)) +
    scale_colour_brewer(type = "qual", palette = "Dark2") +
    facet_grid(. ~ stadur) +
    coord_cartesian(expand = FALSE) +
    theme_half_open() +
    theme(legend.position = "none",
          plot.margin = margin(t = 5, r = 15, b = 5, l = 5)) +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfall barna á aldrinum 12 - 23 mánaða með leikskólapláss eftir aldri",
         subtitle = "Reiknað sem fjöldi barna í leikskóla deilt með fjölda barna í viðeigandi árgangi",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/leikskolar")

p

Code
ggsave(plot = p, filename = "hlutfall_baer_1ars.png",
       width = 8, height = 0.3 * 8,  scale = 2, bg = "white")

Hlutfalslleg aukning plássa og barna

Pláss

Code
plot_dat <- d |> 
    semi_join(
        mannfjoldi |> rename(stadur = sveitarfelag),
        by = "stadur"
    ) |> 
    filter(stadur != "Fjarðabyggð", ar >= 2010) |> 
    count(stadur, ar, wt = n) |> 
    group_by(stadur) |> 
    mutate(hlutf_aukning = n / n[ar == min(ar)]) |> 
    ungroup() |> 
    filter(ar == 2020) |> 
    mutate(stadur1 = fct_reorder(stadur, hlutf_aukning))

p <- plot_dat |> 
    ggplot(aes(stadur1, hlutf_aukning)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = stadur), alpha = 0.8) +
    geom_rangeframe() +
    scale_y_log10(labels = function(x) percent(x - 1),
                  breaks = c(round(plot_dat$hlutf_aukning, 2)),
                  limits = c(NA, max(plot_dat$hlutf_aukning))) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg breyting á fjölda leikskólaplássa eftir sveitarfélagi (frá 2010 til 2020)") +
    theme_tufte(base_size = 13) +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1))

p

Code
ggsave(plot = p, filename = "hlutf_breyting_leikskolaplass.png",
       width = 8, height = 0.5 * 8,  scale = 2, bg = "white")

Börn

Code
plot_dat <- mannfjoldi |> 
    rename(stadur = sveitarfelag) |> 
    semi_join(
        d,
        by = "stadur"
    ) |> 
    filter(stadur != "Fjarðabyggð", ar >= 2010) |> 
    count(stadur, ar, wt = mannfjoldi) |> 
    group_by(stadur) |> 
    mutate(hlutf_aukning = n / n[ar == min(ar)]) |>
    ungroup() |> 
    filter(ar == 2020) |> 
    mutate(stadur1 = fct_reorder(stadur, hlutf_aukning))

p <- plot_dat |> 
    ggplot(aes(stadur1, hlutf_aukning)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = stadur), alpha = 0.8) +
    geom_rangeframe() +
    scale_y_log10(labels = function(x) percent(x - 1),
                  breaks = c(round(plot_dat$hlutf_aukning, 2)),
                  limits = c(NA, max(plot_dat$hlutf_aukning))) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfallsleg breyting á fjölda barna á leikskólaaldri eftir sveitarfélagi (frá 2010 til 2020)") +
    theme_tufte(base_size = 13) +
    theme(legend.position = "none",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1))

p

Code
ggsave(plot = p, filename = "hlutf_breyting_leikskolaborn.png",
       width = 8, height = 0.5 * 8,  scale = 2, bg = "white")

Bæði (Heildarbreyting)

Frá 2010

Code
plot_dat <- d |> 
    semi_join(
        mannfjoldi |> rename(stadur = sveitarfelag),
        by = "stadur"
    ) |> 
    filter(stadur != "Fjarðabyggð", ar >= 2010) |> 
    count(stadur, ar, wt = n) |> 
    group_by(stadur) |> 
    mutate(hlutf_aukning = n / n[ar == min(ar)]) |> 
    ungroup() |> 
    filter(ar == 2020) |> 
    mutate(stadur1 = fct_reorder(stadur, hlutf_aukning),
           tegund = "Leikskólapláss") |> 
    bind_rows(
        mannfjoldi |> 
            rename(stadur = sveitarfelag) |> 
            semi_join(
                d,
                by = "stadur"
            ) |> 
            filter(stadur != "Fjarðabyggð", ar >= 2010) |> 
            count(stadur, ar, wt = mannfjoldi) |> 
            group_by(stadur) |> 
            mutate(hlutf_aukning = n / n[ar == min(ar)]) |>
            ungroup() |> 
            filter(ar == 2020) |> 
            mutate(stadur1 = fct_reorder(stadur, hlutf_aukning),
                   tegund = "Leikskólabörn")
    )



p <- plot_dat |> 
    ggplot(aes(stadur1, hlutf_aukning)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = tegund), alpha = 0.8, position = "dodge") +
    geom_rangeframe() +
    scale_y_log10(labels = function(x) percent(x - 1),
                  breaks = c(round(plot_dat$hlutf_aukning, 2))) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    labs(x = NULL,
         y = NULL,
         fill = NULL,
         title = "Hlutfallsleg breyting á fjölda barna og leikskólaplássa eftir sveitarfélagi (frá 2010 til 2020)") +
    theme_tufte(base_size = 13) +
    theme(legend.position = "top",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1))

p

Code
ggsave(plot = p, filename = "hlutf_breyting_bornogplass.png",
       width = 8, height = 0.5 * 8,  scale = 2, bg = "white")

Frá 2014

Code
plot_dat <- d |> 
    semi_join(
        mannfjoldi |> rename(stadur = sveitarfelag),
        by = "stadur"
    ) |> 
    filter(stadur != "Fjarðabyggð", ar >= 2014) |> 
    count(stadur, ar, wt = n) |> 
    group_by(stadur) |> 
    mutate(hlutf_aukning = n / n[ar == min(ar)]) |> 
    ungroup() |> 
    filter(ar == 2020) |> 
    mutate(stadur1 = fct_reorder(stadur, hlutf_aukning),
           tegund = "Leikskólapláss") |> 
    bind_rows(
        mannfjoldi |> 
            rename(stadur = sveitarfelag) |> 
            semi_join(
                d,
                by = "stadur"
            ) |> 
            filter(stadur != "Fjarðabyggð", ar >= 2010) |> 
            count(stadur, ar, wt = mannfjoldi) |> 
            group_by(stadur) |> 
            mutate(hlutf_aukning = n / n[ar == min(ar)]) |>
            ungroup() |> 
            filter(ar == 2020) |> 
            mutate(stadur1 = fct_reorder(stadur, hlutf_aukning),
                   tegund = "Leikskólabörn")
    )



p <- plot_dat |> 
    ggplot(aes(stadur1, hlutf_aukning)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = tegund), alpha = 0.8, position = "dodge") +
    geom_rangeframe() +
    scale_y_log10(labels = function(x) percent(x - 1),
                  breaks = c(round(plot_dat$hlutf_aukning, 2))) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    labs(x = NULL,
         y = NULL,
         fill = NULL,
         title = "Hlutfallsleg breyting á fjölda barna og leikskólaplássa eftir sveitarfélagi (frá 2014 til 2020)") +
    theme_tufte(base_size = 13) +
    theme(legend.position = "top",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1))

p

Code
ggsave(plot = p, filename = "hlutf_breyting_bornogplass_2014.png",
       width = 8, height = 0.5 * 8,  scale = 2, bg = "white")

Frá 2016

Code
plot_dat <- d |> 
    semi_join(
        mannfjoldi |> rename(stadur = sveitarfelag),
        by = "stadur"
    ) |> 
    filter(stadur != "Fjarðabyggð", ar >= 2016) |> 
    count(stadur, ar, wt = n) |> 
    group_by(stadur) |> 
    mutate(hlutf_aukning = n / n[ar == min(ar)]) |> 
    ungroup() |> 
    filter(ar == 2020) |> 
    mutate(stadur1 = fct_reorder(stadur, hlutf_aukning),
           tegund = "Leikskólapláss") |> 
    bind_rows(
        mannfjoldi |> 
            rename(stadur = sveitarfelag) |> 
            semi_join(
                d,
                by = "stadur"
            ) |> 
            filter(stadur != "Fjarðabyggð", ar >= 2016) |> 
            count(stadur, ar, wt = mannfjoldi) |> 
            group_by(stadur) |> 
            mutate(hlutf_aukning = n / n[ar == min(ar)]) |>
            ungroup() |> 
            filter(ar == 2020) |> 
            mutate(stadur1 = fct_reorder(stadur, hlutf_aukning),
                   tegund = "Leikskólabörn")
    )



p <- plot_dat |> 
    ggplot(aes(stadur1, hlutf_aukning)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = tegund), alpha = 0.8, position = "dodge") +
    geom_rangeframe() +
    scale_y_log10(labels = function(x) percent(x - 1),
                  breaks = c(round(plot_dat$hlutf_aukning, 2))) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    labs(x = NULL,
         y = NULL,
         fill = NULL,
         title = "Hlutfallsleg breyting á fjölda barna og leikskólaplássa eftir sveitarfélagi (frá 2016 til 2020)") +
    theme_tufte(base_size = 13) +
    theme(legend.position = "top",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1))

p

Code
ggsave(plot = p, filename = "hlutf_breyting_bornogplass_2016.png",
       width = 8, height = 0.5 * 8,  scale = 2, bg = "white")

Frá 2018

Code
plot_dat <- d |> 
    semi_join(
        mannfjoldi |> rename(stadur = sveitarfelag),
        by = "stadur"
    ) |> 
    filter(stadur != "Fjarðabyggð", ar >= 2018) |> 
    count(stadur, ar, wt = n) |> 
    group_by(stadur) |> 
    mutate(hlutf_aukning = n / n[ar == min(ar)]) |> 
    ungroup() |> 
    filter(ar == 2020) |> 
    mutate(stadur1 = fct_reorder(stadur, hlutf_aukning),
           tegund = "Leikskólapláss") |> 
    bind_rows(
        mannfjoldi |> 
            rename(stadur = sveitarfelag) |> 
            semi_join(
                d,
                by = "stadur"
            ) |> 
            filter(stadur != "Fjarðabyggð", ar >= 2018) |> 
            count(stadur, ar, wt = mannfjoldi) |> 
            group_by(stadur) |> 
            mutate(hlutf_aukning = n / n[ar == min(ar)]) |>
            ungroup() |> 
            filter(ar == 2020) |> 
            mutate(stadur1 = fct_reorder(stadur, hlutf_aukning),
                   tegund = "Leikskólabörn")
    )



p <- plot_dat |> 
    ggplot(aes(stadur1, hlutf_aukning)) +
    geom_hline(yintercept = 1, lty = 2, alpha = 0.5) +
    geom_col(aes(fill = tegund), alpha = 0.8, position = "dodge") +
    geom_rangeframe() +
    scale_y_log10(labels = function(x) percent(x - 1),
                  breaks = c(round(plot_dat$hlutf_aukning, 2))) +
    scale_fill_brewer(type = "qual", palette = "Dark2") +
    labs(x = NULL,
         y = NULL,
         fill = NULL,
         title = "Hlutfallsleg breyting á fjölda barna og leikskólaplássa eftir sveitarfélagi (frá 2018 til 2020)") +
    theme_tufte(base_size = 13) +
    theme(legend.position = "top",
          axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1))

p

Code
ggsave(plot = p, filename = "hlutf_breyting_bornogplass_2018.png",
       width = 8, height = 0.5 * 8,  scale = 2, bg = "white")

Stöðugildi osf

Code
leiksk_svfel <- read_excel("tenging-leikskolaraa.xlsx", sheet = "Stöðugildi", 
                           range = "F8:X13", col_names = as.character(2002:2020)) |> 
    mutate(stadur = c("Reykjavík", 
                      "Kópavogur", 
                      "Seltjarnarnes", 
                      "Garðabær", 
                      "Hafnarfjörður",
                      "Mosfellsbær")) |> 
    pivot_longer(c(-stadur), names_to = "ar", values_to = "stodugildi") |> 
    inner_join(
        read_excel("tenging-leikskolaraa.xlsx", sheet = "Rekstur", 
                   range = "F8:X13", col_names = as.character(2002:2020)) |> 
            mutate(stadur = c("Reykjavík", 
                              "Kópavogur", 
                              "Seltjarnarnes", 
                              "Garðabær", 
                              "Hafnarfjörður",
                              "Mosfellsbær")) |> 
            pivot_longer(c(-stadur), names_to = "ar", values_to = "rekstur"),
        by = c("stadur", "ar")
    ) |> 
    inner_join(
        read_excel("tenging-leikskolaraa.xlsx", sheet = 3, 
                   range = "E8:W13", col_names = as.character(2002:2020)) |> 
            mutate(stadur = c("Reykjavík", 
                              "Kópavogur", 
                              "Seltjarnarnes", 
                              "Garðabær", 
                              "Hafnarfjörður",
                              "Mosfellsbær")) |> 
            pivot_longer(c(-stadur), names_to = "ar", values_to = "heilsdagsigildi"),
        by = c("stadur", "ar")
    ) |> 
    inner_join(
        read_excel("tenging-leikskolaraa.xlsx", sheet = "Fjöldi", 
                   range = "F8:X13", col_names = as.character(2002:2020)) |> 
            mutate(stadur = c("Reykjavík", 
                              "Kópavogur", 
                              "Seltjarnarnes", 
                              "Garðabær", 
                              "Hafnarfjörður",
                              "Mosfellsbær")) |> 
            pivot_longer(c(-stadur), names_to = "ar", values_to = "fjoldi_barna"),
        by = c("stadur", "ar")
    ) |> 
    mutate(ar = parse_number(ar))
leiksk_einka <- read_excel("tenging-leikskolaraa.xlsx", sheet = "Stöðugildi", 
                           range = "F24:X27", col_names = as.character(2002:2020)) |> 
    mutate(stadur = c("Reykjavík", 
                      "Kópavogur", 
                      "Garðabær", 
                      "Hafnarfjörður")) |> 
    pivot_longer(c(-stadur), names_to = "ar", values_to = "stodugildi") |> 
    inner_join(
        read_excel("tenging-leikskolaraa.xlsx", sheet = 3, 
                   range = "E23:W26", col_names = as.character(2002:2020)) |> 
            mutate(stadur = c("Reykjavík", 
                              "Kópavogur", 
                              "Garðabær", 
                              "Hafnarfjörður")) |> 
            pivot_longer(c(-stadur), names_to = "ar", values_to = "heilsdagsigildi"),
        by = c("stadur", "ar")
    ) |> 
    full_join(
        read_excel("tenging-leikskolaraa.xlsx", sheet = "Fjöldi", 
                   range = "F23:X27", col_names = as.character(2002:2020)) |> 
            mutate(stadur = c("Reykjavík", 
                              "Kópavogur", 
                              "Garðabær", 
                              "Hafnarfjörður",
                              "Mosfellsbær")) |> 
            pivot_longer(c(-stadur), names_to = "ar", values_to = "fjoldi_barna"),
        by = c("stadur", "ar")
    ) |> 
    mutate(ar = parse_number(ar)) |> 
    replace_na(list(fjoldi_barna = 0))
Code
leiksk <- leiksk_svfel |> 
    mutate(born_per_igildi = heilsdagsigildi / stodugildi,
           teg = "Sveitarfélag") |> 
    select(stadur, ar, teg, born_per_igildi) |> 
    bind_rows(
        leiksk_einka |> 
            mutate(born_per_igildi = heilsdagsigildi / stodugildi,
                   teg = "Einkarekinn") |> 
            select(stadur, ar, teg, born_per_igildi)
    )
p <- leiksk |> 
    ggplot(aes(ar, born_per_igildi, col = stadur, group = stadur)) +
    geom_line(data = leiksk |> rename(std = stadur, tg = teg), inherit.aes = FALSE,
              aes(x = ar, y = born_per_igildi, group = paste(std, tg)), col = "grey") +
    geom_line(size = 1) +
    geom_point(size = 2) +
    scale_x_continuous() +
    scale_colour_brewer(type = "qual", palette = "Set1") +
    facet_grid(teg ~ stadur) +
    theme_cowplot() +
    theme(legend.position = "none") +
    labs(x = NULL, y = NULL,
         title = "Heilsdagsígildi (börn) á hvert stöðugildi (starfsfólk) í leikskólum á höfuðborgarsvæðinu frá 2002 til 2020",
         subtitle = "Eitt heilsdagsígildi = barn sem er 7 klst. eða lengur í leikskólanum á dag",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/leikskolar")

p
Warning: Removed 228 row(s) containing missing values (geom_path).
Warning: Removed 19 row(s) containing missing values (geom_path).
Warning: Removed 19 rows containing missing values (geom_point).

Code
ggsave(plot = p, filename = "born_per_stodugildi.png",
       width = 8, height = 0.5 * 8, scale = 2, bg = "white")
Warning: Removed 228 row(s) containing missing values (geom_path).
Warning: Removed 19 row(s) containing missing values (geom_path).
Warning: Removed 19 rows containing missing values (geom_point).